package ar.uade.edu.fain.ad.server.business;

import java.util.ArrayList;
import java.util.List;

import ar.uade.edu.fain.ad.common.transfer.RemitoVO;

public class Remito {

	private Long id;

	private List<ItemRemito> items;

	private List<NotaDevolucion> notasDevolucion;

	private List<ItemOrdenCompra> faltantes;

	public Remito() {
		super();
		this.items = new ArrayList<ItemRemito>();
		this.faltantes = new ArrayList<ItemOrdenCompra>();
		this.notasDevolucion = new ArrayList<NotaDevolucion>();
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public List<ItemRemito> getItems() {
		return items;
	}

	public void setItems(List<ItemRemito> items) {
		this.items = items;
	}

	public List<ItemOrdenCompra> getFaltantes() {
		return faltantes;
	}

	public List<NotaDevolucion> getNotasDevolucion() {
		return notasDevolucion;
	}

	public void setNotasDevolucion(List<NotaDevolucion> notasDevolucion) {
		this.notasDevolucion = notasDevolucion;
	}

	public void contrastar() {
		for (ItemRemito itemRemito : getItems()) {
			itemRemito.impactarOrdenCompra();
			if (itemRemito.hayFaltantes()) {
				getFaltantes().add(itemRemito.getItemOrdenCompra());
			}
			if (itemRemito.hayDevoluciones()) {
				getNotasDevolucion().add(itemRemito.getDevolucion());
			}
		}
	}
	
	public RemitoVO toVO() {
		final RemitoVO vo = new RemitoVO();
		vo.setId(getId());
		for (ItemRemito itemRemito : getItems()) {
			vo.getItems().add(itemRemito.toVO());
		}
		return vo;
	}
	
}
